package com.dtm.client;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Vector;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class ConvertPackge {

	public static String convertToJon(Object data, int code) {
		Gson gson = new Gson();
		return (code + gson.toJson(data));
	}

	public static int getCode(String message) {
		return Integer.parseInt("" + message.charAt(0));
	}

	public static String getJsonData(String message) {
		String jsonData = "";
		for (int i = 1; i < message.length(); i++) {
			jsonData = jsonData + message.charAt(i);
		}
		return jsonData;
	}

	public static Vector<Client> jsonToVector(String jsonData) {
		Gson gson = new Gson();
		Type token = new TypeToken<Vector<Client>>() {
		}.getType();
		Vector<Client> vectorClient = gson.fromJson(jsonData, token);
		return vectorClient;
	}

//	public ArrayList<Client> jsonToArraylist(String jsonData) {
//		Type collectionType = new TypeToken<ArrayList<Client>>() {
//		}.getType();
//		ArrayList<Client> listJson = gson.fromJson(jsonData, collectionType);
//		return listJson;
//	}
//
	public static Client jsonToClient(String jsonData) {
		Gson gson = new Gson();
		Client client = gson.fromJson(jsonData, Client.class);
		return client;
	}

//	public Object convertTobyte(byte[] bytes) {
//		String data = new String(bytes);
//		int code = Integer.parseInt("" + data.charAt(0));
//		String jsonData = "";
//		for (int i = 1; i < data.length(); i++) {
//			jsonData += data.charAt(i);
//		}
//		if (code == ClientConnectedThread.LIST) {
//			Type collectionType = new TypeToken<ArrayList<Client>>() {
//			}.getType();
//			ArrayList<Client> listJson = gson
//					.fromJson(jsonData, collectionType);
//			return listJson;
//		} else if (code == ClientConnectedThread.REG) { // dang ky
//			String name = gson.fromJson(jsonData, String.class);
//			return name;
//		} else if (code == ClientConnectedThread.UDL) {
//			Client newClient = gson.fromJson(jsonData, Client.class);
//			return newClient;
//		} else {
//			return null;
//		}

		// switch (code) {
		// case REG:
		// String name;
		// name = gson.fromJson(jsonData, String.class);
		// break;
		// case UDL:
		//
		// break;
		// case STR:
		//
		// break;
		// default:
		// break;
		// }
//	}
}
